#ifndef LIST_H
#define LIST_H

#include "object.h"
#include <list>
#include <sstream>

using namespace std;

typedef list<Object*>::iterator listIter;

class List : public Object
{
 public:
  list<Object*> linkedList;

  List ();
  ~List ();
  listIter begin ();
  listIter end ();
  void append (Object* node);
  void insert (Object* node);
  void remove (int index);
  bool empty ();
  int size ();
  string toString ();
  Object* operator[] (int index);
};

#endif
